This file is from 01/23/2023

Game will launch in 5...

import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.math.AxisAlignedBB; import net.minecraftforge.client.event.InputEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import java.util.List; @Mod.EventBusSubscriber(modid = "your_mod_id") public class AimAssist { private static final Minecraft mc = Minecraft.getInstance(); private static final float AIM_ASSIST_RANGE = 5.0f; @SubscribeEvent public static void onInputEvent(InputEvent.MouseInputEvent event) { // もし右クリックが押されている場合、AimAssistを適用する if (mc.player != null && mc.gameSettings.keyBindUseItem.isKeyDown()) { applyAimAssist(); } } private static void applyAimAssist() { PlayerEntity player = mc.player; if (player != null) { // プレーヤーの周囲のエンティティを取得 List entities = player.world.getEntitiesWithinAABB(Entity.class, getBoundingBox(player)); Entity closestEntity = null; double closestDistanceSq = Double.MAX_VALUE; // プレーヤーに最も近いエンティティを見つける for (Entity entity : entities) { if (entity instanceof PlayerEntity && entity != player) { double distanceSq = player.getDistanceSq(entity); if (distanceSq < closestDistanceSq) { closestEntity = entity; closestDistanceSq = distanceSq; } } } // 最も近いエンティティが存在する場合、その方向に視線を向ける if (closestEntity != null && closestDistanceSq <= AIM_ASSIST_RANGE * AIM_ASSIST_RANGE) { double deltaX = closestEntity.getPosX() - player.getPosX(); double deltaY = (closestEntity.getPosY() + closestEntity.getEyeHeight()) - (player.getPosY() + player.getEyeHeight()); double deltaZ = closestEntity.getPosZ() - player.getPosZ(); double horizontalDistance = Math.sqrt(deltaX * deltaX + deltaZ * deltaZ); float yaw = (float) Math.toDegrees(Math.atan2(deltaZ, deltaX)) - 90.0f; float pitch = (float) -Math.toDegrees(Math.atan2(deltaY, horizontalDistance)); // プレーヤーの視線を設定する player.rotationYaw = yaw; player.rotationPitch = pitch; } } } private static AxisAlignedBB getBoundingBox(PlayerEntity player) { // プレーヤーの周囲の範囲を定義するBoundingBoxを作成 return player.getBoundingBox().grow(AIM_ASSIST_RANGE); } } import net.minecraft.command.CommandSource; import net.minecraft.command.Commands; import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @Mod.EventBusSubscriber(modid = "your_mod_id", bus = Mod.EventBusSubscriber.Bus.FORGE) public class CommandHandler { @SubscribeEvent public static void registerCommands(RegisterCommandsEvent event) { event.getDispatcher().register(Commands.literal("aim") .executes(context -> toggleAimAssist(context.getSource()))); } private static int toggleAimAssist(CommandSource source) { // AimAssistを有効または無効に切り替える boolean currentState = ModConfig.aimAssistEnabled.get(); ModConfig.aimAssistEnabled.set(!currentState); // チャットにメッセージを送信 source.sendFeedback(ModConfig.aimAssistEnabled.get() ? "AimAssistが有効になりました。" : "AimAssistが無効になりました。", true); return 1; } } @Mod("your_mod_id") public class YourMod { public YourMod() { ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ModConfig.CLIENT_CONFIG); MinecraftForge.EVENT_BUS.register(this); } @SubscribeEvent public static void onClientSetup(FMLClientSetupEvent event) { AimAssist.setup(); } // 他のイベントハンドラなどをここに追加 }